#define  _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
#include <algorithm>
#include <set>
#include <vector>
using namespace std;

class Solution {
public:
    bool IsContinuous(vector<int>& numbers) {
        set<int> s;
        int maxNum = 0, minNum = INT_MAX;
        for (auto& e : numbers)
        {
            if (e != 0 && s.count(e))
            {
                return false;
            }
            else
            {
                s.insert(e);
            }
            if (e != 0)
            {
                maxNum = max(maxNum, e);
                minNum = min(minNum, e);
            }
        }

        return maxNum - minNum <= 4;

    }
};

int main()
{
    vector<int> v = { 6, 0, 2, 0, 4 };
    cout << Solution().IsContinuous(v);

	return 0;
}

//int main()
//{
//    string s;
//    cin >> s;
//    int n = s.size(), cnt = 0;
//    reverse(s.begin(), s.end());
//    string ret;
//    for (int i = 0; i < n; i++)
//    {
//        ret.push_back(s[i]);
//        cnt++;
//        if (cnt % 3 == 0 && i != n - 1)
//        {
//            ret.push_back(',');
//        }
//    }
//    reverse(ret.begin(), ret.end());
//    cout << ret;
//
//    return 0;
//}